package web.login;

import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.PasswordTextField;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.model.CompoundPropertyModel;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;

import persistence.util.HibernateUtil;
import persistence.utilisateur.Client;

import web.HomePage;
import web.Template;
import web.panier.Panier;

/**
 * Classe pour l'inscription d'un client
 * @author Guillaume
 *
 */
public class InscriptionClient extends Template {

	public InscriptionClient()
	{
		super();
		
		Client client = new Client();

		// On créé un formulaire lié à l'objet Client
		Form<?> creaClient = new Form<Object>("creaclient", new CompoundPropertyModel(client))
		{
			public void onSubmit()
			{
				SessionFactory sf = HibernateUtil.getSessionFactory();
				Session session = sf.openSession();
				
				Transaction tc = session.beginTransaction();
				Client c = (Client) this.getModelObject();
				session.save(c);
				tc.commit();
		
				session.close();
				// On associe le nouvel utilisateur créé à la session
				getMySession().setUtilisateur(c);
				Panier p = new Panier();
				getMySession().setPanier(p);
				setResponsePage(new HomePage("Accueil"));
			}
		};
				// Création des champs du formulaire
		creaClient.add(new TextField("mail"));
		creaClient.add(new PasswordTextField("password"));
		creaClient.add(new TextField("nom"));
		creaClient.add(new TextField("prenom"));
		creaClient.add(new TextField("numRue"));
		creaClient.add(new TextField("nomRue"));
		creaClient.add(new TextField("CP"));
		creaClient.add(new TextField("ville"));
		creaClient.add(new TextField("telephone"));
		add(creaClient);
	}
}
